package com.candoit.webapps.pricing.controllers;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;

import com.candoit.webapps.pricing.model.Maquina;
import com.candoit.webapps.pricing.util.QueryUtil;
import com.candoit.webapps.pricing.util.UnitCostMachine;

@ManagedBean(name = "unitMachineCtrl")
@ViewScoped
public class UnitCostMachineController {
	
	private List<UnitCostMachine> listUnitCost;

	public void setListUnitCost(List<UnitCostMachine> listUnitCost) {
		this.listUnitCost = listUnitCost;
	}
	

	public List<UnitCostMachine> getListUnitCost() {
		listUnitCost = new ArrayList<UnitCostMachine>();
		List<Maquina> maquinas = QueryUtil.getInstance().getMaquinas();
		Iterator<Maquina> it = maquinas.iterator();
		while (it.hasNext()){
			  Maquina maquina = (Maquina) it.next();
			  UnitCostMachine unit = new UnitCostMachine();
			  unit.setMaquina(maquina.getNombre());
			  unit.setHorasMes(maquina.getHorasMes());
			  unit.setUnidad(maquina.getUnidadMedida());
			  Double costoMes = QueryUtil.getInstance().getCostoMesCentroCostos(maquina.getCentro());
			  Double costoPorHora = 0.00d;
			  if (costoMes != null){	
			  	Double costoPorMaquina = costoMes / maquina.getCantidad();
			  	costoPorHora = costoPorMaquina / maquina.getHorasMes();
			  	unit.setCostoPorHora(costoPorHora);
			  }else{
				  unit.setCostoPorHora(0.00d);  
			  }
			  Double unidadesPorHora = maquina.getProduccionMensual() / maquina.getHorasMes(); 
			  unit.setUnidadesPorHora(unidadesPorHora);
			  unit.setCostoPorUnidad(costoPorHora / unidadesPorHora);
			  listUnitCost.add(unit);
			  
		}
		return listUnitCost;
	}


	
	
}
